/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ekaaty.business;

import br.com.ekaaty.bean.Pessoa;
import br.com.ekaaty.dao.PessoaDao;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author otavio
 */
public class PessoaBusiness implements GenericBusiness<Pessoa> {

   



    @Override
    public boolean vazio(Pessoa bean) {
        boolean nomeVazio = false, emailVazio = false;
        if (bean.getNome() == null||"".equals(bean.getNome())  ) {
            nomeVazio = true;
        }
        if (bean.getEmail() == null ||"".equals(bean.getEmail()) ) {
            emailVazio = true;
        }

        return nomeVazio || emailVazio;

    }

    @Override
    public boolean duplicado(Pessoa bean) {
        boolean duplicado = false;

        try {


            PessoaDao pessoaDao = new PessoaDao();

            duplicado = !pessoaDao.ehUnico(bean);
        } catch (Exception ex) {
            Logger.getLogger(PessoaBusiness.class.getName()).log(Level.SEVERE, null, ex);
        }
        return duplicado;
    }

    public boolean emailCadastrado(Pessoa bean) {
        boolean email = false;

        try {
            PessoaDao pessoaDao = new PessoaDao();

            email = !pessoaDao.ehEmailUnico(bean);
        } catch (Exception ex) {
            Logger.getLogger(PessoaBusiness.class.getName()).log(Level.SEVERE, null, ex);
        }
        return email;
    }

    @Override
    public boolean adicionar(Pessoa bean) {
        boolean a = !duplicado(bean);
        boolean b = !vazio(bean);
        boolean c = validado(bean);
        boolean d = !emailCadastrado(bean);
        if (!duplicado(bean) && !vazio(bean) && validado(bean) && !emailCadastrado(bean) && emailValido(bean)) {

            try {

                PessoaDao pessoaDao = new PessoaDao();
        
                pessoaDao.adicionar(bean);
                System.out.println("Adicionado");

                return true;

            } catch (Exception ex) {
                Logger.getLogger(PessoaBusiness.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return false;
    }

    @Override
    public boolean validado(Pessoa bean) {
    return   (!duplicado(bean) && !vazio(bean) && nomeValido(bean) && !emailCadastrado(bean) && emailValido(bean)) ;
    }

    public boolean nomeValido(Pessoa bean){
     boolean nomeValidado = false;

        int teste = bean.getNome().length();
        if ((bean.getNome().length() >= 10)) {
         nomeValidado=true;
        }

        return nomeValidado;
    }

    public boolean emailValido(Pessoa bean) {
        boolean emailvalidado = false;
        String email = bean.getEmail();
        if ((bean.getEmail().indexOf("@") > 0 && bean.getEmail().indexOf(".") > -1 && bean.getEmail().indexOf("@.") == -1)) {
            emailvalidado = true;
        }


        return emailvalidado;
    }
}
